package com.wd.module_base.net

import com.wd.live.module_base.net.ApiService
import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory
import retrofit2.converter.gson.GsonConverterFactory
import java.util.concurrent.TimeUnit

/**
 * 作者: syh
 * 时间:2024/5/16
 * 描述:网络工具类
 */
/*
* 网络工具类封装: Retrofit 是一个网络库，用于与后端服务进行通信；RxJava 是一个响应式编程库，用于处理异步事件；
* OkHttp 是一个HTTP客户端库，用于进行网络请求。协程是Kotlin的一个特性，用于简化异步编程，并且配合挂起函数可以
* 使异步代码更易于编写和理解。*/
object HttpUtils {
    private const val BASE_URL="http://10.59.9.24/"

//    返回一个Retrofit对象
    private val retrofit: Retrofit by lazy {
        val okHttp=OkHttpClient.Builder()
            .connectTimeout(5,TimeUnit.SECONDS)
            .readTimeout(5,TimeUnit.SECONDS)
            .addInterceptor(HttpLoggingInterceptor()
                .setLevel(HttpLoggingInterceptor.Level.BODY))
            .build()
    Retrofit.Builder()
        .baseUrl(BASE_URL)
        .client(okHttp)
        .addConverterFactory(GsonConverterFactory.create())
        .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
        .build()
}

    //返回给一个ApiService
    val apiService: ApiService by lazy {
        retrofit.create(ApiService::class.java)
    }


}